Reasoning about Assignments in Recursive Data Structures
نویسندگان
چکیده
This paper presents a framework to reason about the e ects of assignments in recursive data structures. We de ne an operational semantics for a core language based on Meyer's ideas for a semantics for the object-oriented language Ei el. A series of eld accesses, e.g. f1 • f2 • . . . • fn, can be seen as a path on the heap. We provide rules that describe how these multidot expressions are a ected by an assignment. Using multidot expressions to construct an abstraction of a list, we show the correctness of a list reversal algorithm. This approach does not require induction and the reasoning about the assignments is encapsulated in the mentioned rules. We also discuss how to use this approach when working with other data structures and how it compares to the inductive approach. The framework, rules and examples have been formalised and proven correct using the PVS proof assistant.
منابع مشابه
Deductive Formation of Recursive Workflows
We present an action theory with the power to represent recursive plans and the capability to reason about and synthesize recursive workflow control structures. In contrast with the software verification setting, reasoning does not take place solely over predefined data structures, and neither is there a process specification available in recursive form. Rather, specification takes the form of ...
متن کاملExplicit Modelling for Reasoning about Data Structures
We present a proof system for reasoning about data structures. The specification language models memory explicitly as an array, and models pointers and data elements uniformly as integers, used here as an abstraction of a machine word. There are three distinguishing features: the use of recursive definitions, the use of set variables representing explicit footprints in order to implement the co...
متن کاملREASONING ABOUT RECURSIVELY DEFINED DATA STRUCTURES Derek
A decision algorithm is given for the quantifier-free theory of recursively defined data structures which, for a conjunction of length n, decides its satisfiability in time linear in n. The first-order theory of recursively defined data structures, in particular the first-order theory of LISP list structure {the theory of CONS, CAR and CDR), is shown to be decidable but not elementary recursive...
متن کاملProve with GDPLL A Complete Proof Procedure for Recursive Data Structures
In this paper we present a terminating, sound and complete algorithm for the verification of recursively defined data structures. To mention some, nat, list and tree data types and also record are commonly used examples of such structures. Recursively defined data structures are of value for use in software verification. Many programming languages support recursive data structures. The best kno...
متن کاملImplicit Induction Methods and Decision Procedures (Extended Version)
Decision procedures are widely used in automated reasoning tools in order to reason about data structures. Their scope is typically limited, though, and many conjectures occurring in practical applications fall outside the theory handled by a decision procedure. Typically, reasoning about functions that are defined on those data structures is needed. For this, inductive reasoning has to be empl...
متن کامل